#include <iostream>


using namespace std;

int main(){

string s;
int k = 0;
int k1 = 0;
int r = 0;
int r1 = 0;
int t = 0;
int t1 = 0;
int y = 0;
int y1 = 0;
cin >> s;
for(int i = 0; i < s.length(); i++){
    if(s[0] == ')' || s[0] == ']' || s[-1] == '(' || s[-1] == '[' || s[0] == '}' || s[0] == '>' || s[-1] == '{' || s[-1] == '<'){
        cout <<"False";
        break;
    }
    if(s[i] == '['){
        r = r + 1;
    }
    if(s[i] == ']'){
        r1 = r1 + 1;
    }
    if(s[i] == ')'){
        k1 = k1 + 1;
    }
    if(s[i] == '('){
        k = k + 1;
    }
    if(s[i] == '{'){
        t = t + 1;
    }
    if(s[i] == '}'){
        t1 = t1 + 1;
    }
    if(s[i] == '<'){
        y = y + 1;
    }
    if(s[i] == '>'){
        y1 = y1 + 1;
    }
    if ((s[i - 1] == '[' && s[i] == ')') || (s[i - 1] == '[' && s[i] == '}') || (s[i - 1] == '[' && s[i] == '>')){
        cout <<"False";
        break;
    }
    else if ((s[i - 1] == '(' && s[i] == ']') || (s[i - 1] == '(' && s[i] == '}') || (s[i - 1] == '(' && s[i] == '>')){
        cout <<"False";
        break;
    }
    else if ((s[i - 1] == '{' && s[i] == ']') || (s[i - 1] == '{' && s[i] == ')') || (s[i - 1] == '{' && s[i] == '>')){
        cout <<"False";
        break;
    }
    else if ((s[i - 1] == '<' && s[i] == ']') || (s[i - 1] == '<' && s[i] == '}') || (s[i - 1] == '<' && s[i] == ')')){
        cout <<"False";
        break;
    }
    if (s[i - 1] == '(' && s[i] == ')'){
        cout <<"True";
        break;
    }
    else if (s[i - 1] == '[' && s[i] == ']'){
        cout <<"True";
        break;
    }
    else if (s[i - 1] == '{' && s[i] == '}'){
        cout <<"True";
        break;
    }
    else if (s[i - 1] == '<' && s[i] == '>'){
        cout <<"True";
        break;
    }
    if (k1 > k || r1 > r || t1 > t || y1 > y){
        cout <<"False";
        break;
    }
}
int c = 0;
int c1 = 0;
int v = 0;
int v1 = 0;
int b = 0;
int b1= 0;
int n = 0;
int n1 = 0;
for(int i = 0; i < s.length(); i++){
    if (s[i] == '['){
        c = c + 1;
    }
    if (s[i] == ']'){
        c1 = c1 + 1;
    }
    if (s[i] == ')'){
        v1 = v1 + 1;
    }
    if (s[i] == '('){
        v = v + 1;
    }
    if (s[i] == '{'){
        b = b + 1;
    }
    if (s[i] == '}'){
        b1 = b1 + 1;
    }
    if (s[i] == '<'){
        n = n + 1;
    }
    if (s[i] == '>'){
        n1 = n1 + 1;
    }
}
if (c > c1 || v > v1 || b > b1 || n > n1){
    cout <<"False";
}
}